
[dbo].[asi_DocumentDeleteDocument]
CREATE PROCEDURE [dbo].[asi_DocumentDeleteDocument]
@documentVersionKey uniqueidentifier,
@purgeVersions bit = 0
AS
BEGIN
SET NOCOUNT ON
DECLARE @documentKey uniqueidentifier
DECLARE @accessKey uniqueidentifier
DECLARE @isVersioned bit
DECLARE @publishedVersionExists bit
SET @publishedVersionExists = 1
SELECT @documentKey = d.[DocumentKey], @accessKey = d.[AccessKey], @isVersioned = t.[TrackVersionsFlag]
FROM [dbo].[DocumentMain] d INNER JOIN [dbo].[DocumentTypeRef] t ON d.[DocumentTypeCode] = t.[DocumentTypeCode]
WHERE d.[DocumentVersionKey] = @documentVersionKey AND d.[DocumentStatusCode] IN (40,60)
IF @documentKey IS NULL
BEGIN
SET @publishedVersionExists = 0
IF EXISTS (SELECT 1 FROM [dbo].[DocumentMain] d WHERE d.[DocumentVersionKey] = @documentVersionKey)
BEGIN
SET @isVersioned = 1
END
END
IF @isVersioned = 1
BEGIN
IF @purgeVersions = 0
BEGIN
UPDATE [dbo].[DocumentMain] SET [DocumentStatusCode] = 80
WHERE [DocumentKey] = @documentKey
END
ELSE
BEGIN
DECLARE @documents TABLE (DocumentKey uniqueidentifier NOT NULL)
INSERT INTO @documents
SELECT [DocumentKey] FROM [dbo].[DocumentMain] d WHERE d.[DocumentVersionKey] = @documentVersionKey
DELETE FROM [dbo].[Hierarchy] WHERE [UniformKey] = @documentVersionKey
EXEC [dbo].[asi_AccessKeyDelete] @accessKey
DELETE prd FROM @documents d INNER JOIN [dbo].[PublishRequestDetail] prd ON d.[DocumentKey] = prd.[ContentDocumentKey]
DELETE dm FROM @documents d INNER JOIN [dbo].[DocumentMain] dm ON d.[DocumentKey] = dm.[DocumentKey]
DELETE FROM [dbo].[UniformRegistry] WHERE [UniformKey] = @documentVersionKey
DELETE u FROM @documents d INNER JOIN [dbo].[UniformRegistry] u ON d.[DocumentKey] = u.[UniformKey]
END
END
ELSE IF @documentKey IS NOT NULL
BEGIN
DELETE FROM [dbo].[Hierarchy] WHERE [UniformKey] = @documentVersionKey
EXEC [dbo].[asi_AccessKeyDelete] @accessKey
DELETE FROM [dbo].[PublishRequestDetail] WHERE [ContentDocumentKey] = @documentKey
DELETE FROM [dbo].[DocumentMain] WHERE [DocumentVersionKey] = @documentVersionKey
DELETE FROM [dbo].[UniformRegistry] WHERE [UniformKey] = @documentKey
DELETE FROM [dbo].[UniformRegistry] WHERE [UniformKey] = @documentVersionKey
END
SET NOCOUNT OFF
END
GO